約 2,681,008 件
https://w.atwiki.jp/tmiya/pages/137.html
Scala 改善ドキュメントライブラリ Scala Improvement Documents Library 原ページ 以下は、本家の SID (Scala Improvement Documents Library) をいくつか訳したものです。誤訳もありそうなので参考程度にご覧ください。断り無く編集してください。気がついたことその他は、本ページ下方に投稿してください。 尚、特に Statusが draft(草案)のものは、内容が一部盛り込まれていることもあれば、全く盛り込まれていないこともあります。また、今後、下記の訳と最新英語PDFのバージョンが合致しないことも考えられます。 SID#1 Revision 7 、Date 2010-01-22、Status active 名前付き引数とデフォル引数 (Named and Default Arguments) SID#3 Revision 5 、Date 2010-07-20、Status active 新コレクションクラス (New Collection Classes) 参考 Scala 2.8 コレクション API ( ttp //eed3si9n.github.com/scala-collections-doc-ja/collections_0.html ) 参考 Scala コレクションのアーキテクチャ ( ttp //eed3si9n.github.com/scala-collections-impl-doc-ja ) SID#4 Revision 1 、Date 2009-06-02、Status draft 事前初期化メンバー定義(Early Member Definintions) SID#5 Revision 2 、Date 2010-01-27、Status active Scala アノテーション(Internals Scala Annotations) SID#7 Revision 3 、Date 2010-01-22、Status active Scala 2.8 配列 (Scala 2.8 Arrays) 参考 Scala 2.8 コレクション API 配列 ttp //eed3si9n.github.com/scala-collections-doc-ja/collections_38.html ) SID#8 Revision 1 、Date 2009-11-02、Status draft Scala Swing 概観 (Scala Swing Overview) SID#9 Revision 2 、Date 2010-05-06、Status draft Scala 型専用化 (Scala Specialization) 名前 コメント
https://w.atwiki.jp/natsutan/pages/29.html
概要 generic/tclBasic.c 引数 Tcl_Interp *interp TCL インタープリタへのポインター const char *script 実行するコマンド int numBytes scriptのバイト数。0より小さいときは全バイト。 int flags 制御フラグTCL_EVAL_GLOBALのみサポート int line スクリプトの開始行数 int* clNextOuter CONST char* outerScript outerスクリプト。一番outer(呼び出しの浅い)スクリプトを示す。outerScript == scriptの時、一番outerなスクリプトであることを示す。 戻り値 実行結果 処理 変数の宣言 Interp *iPtr = (Interp *) interp; const char *p, *next; const unsigned int minObjs = 20; Tcl_Obj **objv, **objvSpace; int *expand, *lines, *lineSpace; Tcl_Token *tokenPtr; int commandLength, bytesLeft, expandRequested, code = TCL_OK; CallFrame *savedVarFramePtr;/* Saves old copy of iPtr- varFramePtr in case * TCL_EVAL_GLOBAL was set. */ int allowExceptions = (iPtr- evalFlags TCL_ALLOW_EXCEPTIONS); int gotParse = 0; unsigned int i, objectsUsed = 0; /* These variables keep track of how much * state has been allocated while evaluating * the script, so that it can be freed * properly if an error occurs. */ Tcl_Parse *parsePtr = (Tcl_Parse *) TclStackAlloc(interp, sizeof(Tcl_Parse)); [[CmdFrame]] *eeFramePtr = (CmdFrame *) TclStackAlloc(interp, sizeof(CmdFrame)); Tcl_Obj **stackObjArray = (Tcl_Obj **) TclStackAlloc(interp, minObjs * sizeof(Tcl_Obj *)); int *expandStack = (int *) TclStackAlloc(interp, minObjs * sizeof(int)); int *linesStack = (int *) TclStackAlloc(interp, minObjs * sizeof(int)); /* TIP #280 Structures for tracking of command * locations. */ /* * Pointer for the tracking of invisible continuation lines. Initialized * only if the caller gave us a table of locations to track, via * scriptCLLocPtr. It always refers to the table entry holding the * location of the next invisible continuation line to look for, while * parsing the script. */ int* clNext = NULL; if (iPtr- scriptCLLocPtr) { if (clNextOuter) { clNext = clNextOuter; } else { clNext = iPtr- scriptCLLocPtr- loc[0]; } } if (numBytes 0) { numBytes = strlen(script); } Tcl_ResetResult(interp); savedVarFramePtr = iPtr- varFramePtr; if (flags TCL_EVAL_GLOBAL) { iPtr- varFramePtr = iPtr- rootFramePtr; } /* * Each iteration through the following loop parses the next command from * the script and then executes it. */ objv = objvSpace = stackObjArray; lines = lineSpace = linesStack; expand = expandStack; p = script; bytesLeft = numBytes; /* * TIP #280 Initialize tracking. Do not push on the frame stack yet. * * We may continue counting based on a specific context (CTX), or open a * new context, either for a sourced script, or 'eval'. For sourced files * we always have a path object, even if nothing was specified in the * interp itself. That makes code using it simpler as NULL checks can be * left out. Sourced file without path in the 'scriptFile' is possible * during Tcl initialization. */ if (iPtr- evalFlags TCL_EVAL_CTX) { /* * Path information comes out of the context. */ eeFramePtr- type = TCL_LOCATION_SOURCE; eeFramePtr- data.eval.path = iPtr- invokeCmdFramePtr- data.eval.path; Tcl_IncrRefCount(eeFramePtr- data.eval.path); } else if (iPtr- evalFlags TCL_EVAL_FILE) { /* * Set up for a sourced file. */ eeFramePtr- type = TCL_LOCATION_SOURCE; if (iPtr- scriptFile) { /* * Normalization here, to have the correct pwd. Should have * negligible impact on performance, as the norm should have been * done already by the 'source' invoking us, and it caches the * result. */ Tcl_Obj *norm = Tcl_FSGetNormalizedPath(interp, iPtr- scriptFile); if (norm == NULL) { /* * Error message in the interp result. */ code = TCL_ERROR; goto error; } eeFramePtr- data.eval.path = norm; } else { TclNewLiteralStringObj(eeFramePtr- data.eval.path, ""); } Tcl_IncrRefCount(eeFramePtr- data.eval.path); } else { /* * Set up for plain eval. */ eeFramePtr- type = TCL_LOCATION_EVAL; eeFramePtr- data.eval.path = NULL; } eeFramePtr- level = iPtr- cmdFramePtr ? iPtr- cmdFramePtr- level + 1 1; eeFramePtr- framePtr = iPtr- framePtr; eeFramePtr- nextPtr = iPtr- cmdFramePtr; eeFramePtr- nline = 0; eeFramePtr- line = NULL; iPtr- evalFlags = 0; do { if (Tcl_Parse[[Command]](interp, p, bytesLeft, 0, parsePtr) != TCL_OK) { code = TCL_ERROR; goto error; } /* * TIP #280 Track lines. The parser may have skipped text till it * found the command we are now at. We have to count the lines in this * block, and do not forget invisible continuation lines. */ TclAdvanceLines( line, p, parsePtr- commandStart); TclAdvanceContinuations ( line, clNext, parsePtr- commandStart - outerScript); gotParse = 1; if (parsePtr- numWords 0) { /* * TIP #280. Track lines within the words of the current * command. We use a separate pointer into the table of * continuation line locations to not lose our position for the * per-command parsing. */ int wordLine = line; const char *wordStart = parsePtr- commandStart; int* wordCLNext = clNext; /* * Generate an array of objects for the words of the command. */ unsigned int objectsNeeded = 0; unsigned int numWords = parsePtr- numWords; if (numWords minObjs) { expand = (int *) ckalloc(numWords * sizeof(int)); objvSpace = (Tcl_Obj **) ckalloc(numWords * sizeof(Tcl_Obj *)); lineSpace = (int *) ckalloc(numWords * sizeof(int)); } expandRequested = 0; objv = objvSpace; lines = lineSpace; for (objectsUsed = 0, tokenPtr = parsePtr- tokenPtr; objectsUsed numWords; objectsUsed++, tokenPtr += tokenPtr- numComponents+1) { /* * TIP #280. Track lines to current word. Save the information * on a per-word basis, signaling dynamic words as needed. * Make the information available to the recursively called * evaluator as well, including the type of context (source * vs. eval). */ TclAdvanceLines( wordLine, wordStart, tokenPtr- start); TclAdvanceContinuations ( wordLine, wordCLNext, tokenPtr- start - outerScript); wordStart = tokenPtr- start; lines[objectsUsed] = TclWordKnownAtCompileTime(tokenPtr, NULL) ? wordLine -1; if (eeFramePtr- type == TCL_LOCATION_SOURCE) { iPtr- evalFlags |= TCL_EVAL_FILE; } code = TclSubstTokens(interp, tokenPtr+1, tokenPtr- numComponents, NULL, wordLine, wordCLNext, outerScript); iPtr- evalFlags = 0; if (code != TCL_OK) { goto error; } objv[objectsUsed] = Tcl_GetObjResult(interp); Tcl_IncrRefCount(objv[objectsUsed]); if (tokenPtr- type == TCL_TOKEN_EXPAND_WORD) { int numElements; code = TclListObjLength(interp, objv[objectsUsed], numElements); if (code == TCL_ERROR) { /* * Attempt to expand a non-list. */ Tcl_AppendObjToErrorInfo(interp, Tcl_ObjPrintf( "\n (expanding word %d)", objectsUsed)); Tcl_DecrRefCount(objv[objectsUsed]); goto error; } expandRequested = 1; expand[objectsUsed] = 1; objectsNeeded += (numElements ? numElements 1); } else { expand[objectsUsed] = 0; objectsNeeded++; } if (wordCLNext) { TclContinuationsEnterDerived (objv[objectsUsed], wordStart - outerScript, wordCLNext); } } /* for loop */ if (expandRequested) { /* * Some word expansion was requested. Check for objv resize. */ Tcl_Obj **copy = objvSpace; int *lcopy = lineSpace; int wordIdx = numWords; int objIdx = objectsNeeded - 1; if ((numWords minObjs) || (objectsNeeded minObjs)) { objv = objvSpace = (Tcl_Obj **) ckalloc(objectsNeeded * sizeof(Tcl_Obj *)); lines = lineSpace = (int *) ckalloc(objectsNeeded * sizeof(int)); } objectsUsed = 0; while (wordIdx--) { if (expand[wordIdx]) { int numElements; Tcl_Obj **elements, *temp = copy[wordIdx]; Tcl_ListObjGetElements(NULL, temp, numElements, elements); objectsUsed += numElements; while (numElements--) { lines[objIdx] = -1; objv[objIdx--] = elements[numElements]; Tcl_IncrRefCount(elements[numElements]); } Tcl_DecrRefCount(temp); } else { lines[objIdx] = lcopy[wordIdx]; objv[objIdx--] = copy[wordIdx]; objectsUsed++; } } objv += objIdx+1; if (copy != stackObjArray) { ckfree((char *) copy); } if (lcopy != linesStack) { ckfree((char *) lcopy); } } /* * Execute the command and free the objects for its words. * * TIP #280 Remember the command itself for 'info frame'. We * shorten the visible command by one char to exclude the * termination character, if necessary. Here is where we put our * frame on the stack of frames too. _After_ the nested commands * have been executed. */ eeFramePtr- cmd.str.cmd = parsePtr- commandStart; eeFramePtr- cmd.str.len = parsePtr- commandSize; if (parsePtr- term == parsePtr- commandStart + parsePtr- commandSize - 1) { eeFramePtr- cmd.str.len--; } eeFramePtr- nline = objectsUsed; eeFramePtr- line = lines; TclArgumentEnter (interp, objv, objectsUsed, eeFramePtr); iPtr- cmdFramePtr = eeFramePtr; iPtr- numLevels++; code = TclEvalObjvInternal(interp, objectsUsed, objv, parsePtr- commandStart, parsePtr- commandSize, 0); iPtr- numLevels--; iPtr- cmdFramePtr = iPtr- cmdFramePtr- nextPtr; TclArgumentRelease (interp, objv, objectsUsed); eeFramePtr- line = NULL; eeFramePtr- nline = 0; if (code != TCL_OK) { goto error; } for (i = 0; i objectsUsed; i++) { Tcl_DecrRefCount(objv[i]); } objectsUsed = 0; if (objvSpace != stackObjArray) { ckfree((char *) objvSpace); objvSpace = stackObjArray; ckfree((char *) lineSpace); lineSpace = linesStack; } /* * Free expand separately since objvSpace could have been * reallocated above. */ if (expand != expandStack) { ckfree((char *) expand); expand = expandStack; } } /* * Advance to the next command in the script. * * TIP #280 Track Lines. Now we track how many lines were in the * executed command. */ next = parsePtr- commandStart + parsePtr- commandSize; bytesLeft -= next - p; p = next; TclAdvanceLines( line, parsePtr- commandStart, p); Tcl_FreeParse(parsePtr); gotParse = 0; } while (bytesLeft 0); iPtr- varFramePtr = savedVarFramePtr; code = TCL_OK; goto cleanup_return; error /* * Generate and log various pieces of error information. */ if (iPtr- numLevels == 0) { if (code == TCL_RETURN) { code = TclUpdateReturnInfo(iPtr); } if ((code != TCL_OK) (code != TCL_ERROR) !allowExceptions) { ProcessUnexpectedResult(interp, code); code = TCL_ERROR; } } if ((code == TCL_ERROR) !(iPtr- flags ERR_ALREADY_LOGGED)) { commandLength = parsePtr- commandSize; if (parsePtr- term == parsePtr- commandStart + commandLength - 1) { /* * The terminator character (such as ; or ]) of the command where * the error occurred is the last character in the parsed command. * Reduce the length by one so that the error message doesn't * include the terminator character. */ commandLength -= 1; } Tcl_LogCommandInfo(interp, script, parsePtr- commandStart, commandLength); } iPtr- flags = ~ERR_ALREADY_LOGGED; /* * Then free resources that had been allocated to the command. */ for (i = 0; i objectsUsed; i++) { Tcl_DecrRefCount(objv[i]); } if (gotParse) { Tcl_FreeParse(parsePtr); } if (objvSpace != stackObjArray) { ckfree((char *) objvSpace); ckfree((char *) lineSpace); } if (expand != expandStack) { ckfree((char *) expand); } iPtr- varFramePtr = savedVarFramePtr; cleanup_return /* * TIP #280. Release the local CmdFrame, and its contents. */ if (eeFramePtr- type == TCL_LOCATION_SOURCE) { Tcl_DecrRefCount(eeFramePtr- data.eval.path); } TclStackFree(interp, linesStack); TclStackFree(interp, expandStack); TclStackFree(interp, stackObjArray); TclStackFree(interp, eeFramePtr); TclStackFree(interp, parsePtr); return code; } ソース int TclEvalEx( [[Tcl_Interp]] *interp,/* Interpreter in which to evaluate the * script. Also used for error reporting. */ const char *script,/* First character of script to evaluate. */ int numBytes,/* Number of bytes in script. If 0, the * script consists of all bytes up to the * first NUL character. */ int flags,/* Collection of OR-ed bits that control the * evaluation of the script. Only * TCL_EVAL_GLOBAL is currently supported. */ int line,/* The line the script starts on. */ int* clNextOuter, /* Information about an outer context for */ CONST char* outerScript) /* continuation line data. This is set only in * TclSubstTokens(), to properly handle * [...]-nested commands. The 'outerScript' * refers to the most-outer script containing the * embedded command, which is refered to by * 'script'. The 'clNextOuter' refers to the * current entry in the table of continuation * lines in this "master script", and the * character offsets are relative to the * 'outerScript' as well. * * If outerScript == script, then this call is * for the outer-most script/command. See * Tcl_EvalEx() and TclEvalObjEx() for places * generating arguments for which this is true. */ { Interp *iPtr = (Interp *) interp; const char *p, *next; const unsigned int minObjs = 20; Tcl_Obj **objv, **objvSpace; int *expand, *lines, *lineSpace; Tcl_Token *tokenPtr; int commandLength, bytesLeft, expandRequested, code = TCL_OK; CallFrame *savedVarFramePtr;/* Saves old copy of iPtr- varFramePtr in case * TCL_EVAL_GLOBAL was set. */ int allowExceptions = (iPtr- evalFlags TCL_ALLOW_EXCEPTIONS); int gotParse = 0; unsigned int i, objectsUsed = 0; /* These variables keep track of how much * state has been allocated while evaluating * the script, so that it can be freed * properly if an error occurs. */ Tcl_Parse *parsePtr = (Tcl_Parse *) TclStackAlloc(interp, sizeof(Tcl_Parse)); CmdFrame *eeFramePtr = (CmdFrame *) TclStackAlloc(interp, sizeof(CmdFrame)); Tcl_Obj **stackObjArray = (Tcl_Obj **) TclStackAlloc(interp, minObjs * sizeof(Tcl_Obj *)); int *expandStack = (int *) TclStackAlloc(interp, minObjs * sizeof(int)); int *linesStack = (int *) TclStackAlloc(interp, minObjs * sizeof(int)); /* TIP #280 Structures for tracking of command * locations. */ /* * Pointer for the tracking of invisible continuation lines. Initialized * only if the caller gave us a table of locations to track, via * scriptCLLocPtr. It always refers to the table entry holding the * location of the next invisible continuation line to look for, while * parsing the script. */ int* clNext = NULL; if (iPtr- scriptCLLocPtr) { if (clNextOuter) { clNext = clNextOuter; } else { clNext = iPtr- scriptCLLocPtr- loc[0]; } } if (numBytes 0) { numBytes = strlen(script); } Tcl_ResetResult(interp); savedVarFramePtr = iPtr- varFramePtr; if (flags TCL_EVAL_GLOBAL) { iPtr- varFramePtr = iPtr- rootFramePtr; } /* * Each iteration through the following loop parses the next command from * the script and then executes it. */ objv = objvSpace = stackObjArray; lines = lineSpace = linesStack; expand = expandStack; p = script; bytesLeft = numBytes; /* * TIP #280 Initialize tracking. Do not push on the frame stack yet. * * We may continue counting based on a specific context (CTX), or open a * new context, either for a sourced script, or 'eval'. For sourced files * we always have a path object, even if nothing was specified in the * interp itself. That makes code using it simpler as NULL checks can be * left out. Sourced file without path in the 'scriptFile' is possible * during Tcl initialization. */ if (iPtr- evalFlags TCL_EVAL_CTX) { /* * Path information comes out of the context. */ eeFramePtr- type = TCL_LOCATION_SOURCE; eeFramePtr- data.eval.path = iPtr- invokeCmdFramePtr- data.eval.path; Tcl_IncrRefCount(eeFramePtr- data.eval.path); } else if (iPtr- evalFlags TCL_EVAL_FILE) { /* * Set up for a sourced file. */ eeFramePtr- type = TCL_LOCATION_SOURCE; if (iPtr- scriptFile) { /* * Normalization here, to have the correct pwd. Should have * negligible impact on performance, as the norm should have been * done already by the 'source' invoking us, and it caches the * result. */ Tcl_Obj *norm = Tcl_FSGetNormalizedPath(interp, iPtr- scriptFile); if (norm == NULL) { /* * Error message in the interp result. */ code = TCL_ERROR; goto error; } eeFramePtr- data.eval.path = norm; } else { TclNewLiteralStringObj(eeFramePtr- data.eval.path, ""); } Tcl_IncrRefCount(eeFramePtr- data.eval.path); } else { /* * Set up for plain eval. */ eeFramePtr- type = TCL_LOCATION_EVAL; eeFramePtr- data.eval.path = NULL; } eeFramePtr- level = iPtr- cmdFramePtr ? iPtr- cmdFramePtr- level + 1 1; eeFramePtr- framePtr = iPtr- framePtr; eeFramePtr- nextPtr = iPtr- cmdFramePtr; eeFramePtr- nline = 0; eeFramePtr- line = NULL; iPtr- evalFlags = 0; do { if (Tcl_ParseCommand(interp, p, bytesLeft, 0, parsePtr) != TCL_OK) { code = TCL_ERROR; goto error; } /* * TIP #280 Track lines. The parser may have skipped text till it * found the command we are now at. We have to count the lines in this * block, and do not forget invisible continuation lines. */ TclAdvanceLines( line, p, parsePtr- commandStart); TclAdvanceContinuations ( line, clNext, parsePtr- commandStart - outerScript); gotParse = 1; if (parsePtr- numWords 0) { /* * TIP #280. Track lines within the words of the current * command. We use a separate pointer into the table of * continuation line locations to not lose our position for the * per-command parsing. */ int wordLine = line; const char *wordStart = parsePtr- commandStart; int* wordCLNext = clNext; /* * Generate an array of objects for the words of the command. */ unsigned int objectsNeeded = 0; unsigned int numWords = parsePtr- numWords; if (numWords minObjs) { expand = (int *) ckalloc(numWords * sizeof(int)); objvSpace = (Tcl_Obj **) ckalloc(numWords * sizeof(Tcl_Obj *)); lineSpace = (int *) ckalloc(numWords * sizeof(int)); } expandRequested = 0; objv = objvSpace; lines = lineSpace; for (objectsUsed = 0, tokenPtr = parsePtr- tokenPtr; objectsUsed numWords; objectsUsed++, tokenPtr += tokenPtr- numComponents+1) { /* * TIP #280. Track lines to current word. Save the information * on a per-word basis, signaling dynamic words as needed. * Make the information available to the recursively called * evaluator as well, including the type of context (source * vs. eval). */ TclAdvanceLines( wordLine, wordStart, tokenPtr- start); TclAdvanceContinuations ( wordLine, wordCLNext, tokenPtr- start - outerScript); wordStart = tokenPtr- start; lines[objectsUsed] = TclWordKnownAtCompileTime(tokenPtr, NULL) ? wordLine -1; if (eeFramePtr- type == TCL_LOCATION_SOURCE) { iPtr- evalFlags |= TCL_EVAL_FILE; } code = TclSubstTokens(interp, tokenPtr+1, tokenPtr- numComponents, NULL, wordLine, wordCLNext, outerScript); iPtr- evalFlags = 0; if (code != TCL_OK) { goto error; } objv[objectsUsed] = Tcl_GetObjResult(interp); Tcl_IncrRefCount(objv[objectsUsed]); if (tokenPtr- type == TCL_TOKEN_EXPAND_WORD) { int numElements; code = TclListObjLength(interp, objv[objectsUsed], numElements); if (code == TCL_ERROR) { /* * Attempt to expand a non-list. */ Tcl_AppendObjToErrorInfo(interp, Tcl_ObjPrintf( "\n (expanding word %d)", objectsUsed)); Tcl_DecrRefCount(objv[objectsUsed]); goto error; } expandRequested = 1; expand[objectsUsed] = 1; objectsNeeded += (numElements ? numElements 1); } else { expand[objectsUsed] = 0; objectsNeeded++; } if (wordCLNext) { TclContinuationsEnterDerived (objv[objectsUsed], wordStart - outerScript, wordCLNext); } } /* for loop */ if (expandRequested) { /* * Some word expansion was requested. Check for objv resize. */ Tcl_Obj **copy = objvSpace; int *lcopy = lineSpace; int wordIdx = numWords; int objIdx = objectsNeeded - 1; if ((numWords minObjs) || (objectsNeeded minObjs)) { objv = objvSpace = (Tcl_Obj **) ckalloc(objectsNeeded * sizeof(Tcl_Obj *)); lines = lineSpace = (int *) ckalloc(objectsNeeded * sizeof(int)); } objectsUsed = 0; while (wordIdx--) { if (expand[wordIdx]) { int numElements; Tcl_Obj **elements, *temp = copy[wordIdx]; Tcl_ListObjGetElements(NULL, temp, numElements, elements); objectsUsed += numElements; while (numElements--) { lines[objIdx] = -1; objv[objIdx--] = elements[numElements]; Tcl_IncrRefCount(elements[numElements]); } Tcl_DecrRefCount(temp); } else { lines[objIdx] = lcopy[wordIdx]; objv[objIdx--] = copy[wordIdx]; objectsUsed++; } } objv += objIdx+1; if (copy != stackObjArray) { ckfree((char *) copy); } if (lcopy != linesStack) { ckfree((char *) lcopy); } } /* * Execute the command and free the objects for its words. * * TIP #280 Remember the command itself for 'info frame'. We * shorten the visible command by one char to exclude the * termination character, if necessary. Here is where we put our * frame on the stack of frames too. _After_ the nested commands * have been executed. */ eeFramePtr- cmd.str.cmd = parsePtr- commandStart; eeFramePtr- cmd.str.len = parsePtr- commandSize; if (parsePtr- term == parsePtr- commandStart + parsePtr- commandSize - 1) { eeFramePtr- cmd.str.len--; } eeFramePtr- nline = objectsUsed; eeFramePtr- line = lines; TclArgumentEnter (interp, objv, objectsUsed, eeFramePtr); iPtr- cmdFramePtr = eeFramePtr; iPtr- numLevels++; code = TclEvalObjvInternal(interp, objectsUsed, objv, parsePtr- commandStart, parsePtr- commandSize, 0); iPtr- numLevels--; iPtr- cmdFramePtr = iPtr- cmdFramePtr- nextPtr; TclArgumentRelease (interp, objv, objectsUsed); eeFramePtr- line = NULL; eeFramePtr- nline = 0; if (code != TCL_OK) { goto error; } for (i = 0; i objectsUsed; i++) { Tcl_DecrRefCount(objv[i]); } objectsUsed = 0; if (objvSpace != stackObjArray) { ckfree((char *) objvSpace); objvSpace = stackObjArray; ckfree((char *) lineSpace); lineSpace = linesStack; } /* * Free expand separately since objvSpace could have been * reallocated above. */ if (expand != expandStack) { ckfree((char *) expand); expand = expandStack; } } /* * Advance to the next command in the script. * * TIP #280 Track Lines. Now we track how many lines were in the * executed command. */ next = parsePtr- commandStart + parsePtr- commandSize; bytesLeft -= next - p; p = next; TclAdvanceLines( line, parsePtr- commandStart, p); Tcl_FreeParse(parsePtr); gotParse = 0; } while (bytesLeft 0); iPtr- varFramePtr = savedVarFramePtr; code = TCL_OK; goto cleanup_return; error /* * Generate and log various pieces of error information. */ if (iPtr- numLevels == 0) { if (code == TCL_RETURN) { code = TclUpdateReturnInfo(iPtr); } if ((code != TCL_OK) (code != TCL_ERROR) !allowExceptions) { ProcessUnexpectedResult(interp, code); code = TCL_ERROR; } } if ((code == TCL_ERROR) !(iPtr- flags ERR_ALREADY_LOGGED)) { commandLength = parsePtr- commandSize; if (parsePtr- term == parsePtr- commandStart + commandLength - 1) { /* * The terminator character (such as ; or ]) of the command where * the error occurred is the last character in the parsed command. * Reduce the length by one so that the error message doesn't * include the terminator character. */ commandLength -= 1; } Tcl_LogCommandInfo(interp, script, parsePtr- commandStart, commandLength); } iPtr- flags = ~ERR_ALREADY_LOGGED; /* * Then free resources that had been allocated to the command. */ for (i = 0; i objectsUsed; i++) { Tcl_DecrRefCount(objv[i]); } if (gotParse) { Tcl_FreeParse(parsePtr); } if (objvSpace != stackObjArray) { ckfree((char *) objvSpace); ckfree((char *) lineSpace); } if (expand != expandStack) { ckfree((char *) expand); } iPtr- varFramePtr = savedVarFramePtr; cleanup_return /* * TIP #280. Release the local CmdFrame, and its contents. */ if (eeFramePtr- type == TCL_LOCATION_SOURCE) { Tcl_DecrRefCount(eeFramePtr- data.eval.path); } TclStackFree(interp, linesStack); TclStackFree(interp, expandStack); TclStackFree(interp, stackObjArray); TclStackFree(interp, eeFramePtr); TclStackFree(interp, parsePtr); return code; }
https://w.atwiki.jp/coverdale/
ブログはじめます。 相方からそそのかされて パソコン初心者のわたしがようやくマイブログを始めてみました 日記とか更新できそうです☆ どうぞご覧になって下さい
https://w.atwiki.jp/callofduty/pages/5.html
Call of Duty MW2 武器一覧
https://w.atwiki.jp/cryptospace/pages/160.html
Def (Obfuscator) Theorem (Obfuscator) Proof Idea Construction in the random oracle model Def (Computational approximate functionality) Def (Statistical Perfect One-Way Function) Theorem (Obfuscator with computational approximate functionality) Construction Def (Obfuscator) F a family of functions a PPT O is an obfuscator of F if 【(Statsitical) Approximate Functionality】 ∀F ∈ F, Prcoins of O[ ∃x, O(F)(x) ≠ F(x) ] ≦ ε(n). (普通のO(F)はパーフェクト) 【Polynomial Slowdown】 ∃p poly, ∀F ∈ F, O(F) runs in time ≦ p(time(F)). 【Virtual Black-box property】 ∀A nonuniform PPT, ∀p poly, ∃S nonuniform PPT, ∀F ∈ F, | Pr[ b ← A(O(F)) b = 1 ] - Pr[b ← SF b = 1] | ≦ 1/p(n). (n 0) Theorem (Obfuscator) Obfuscators do not exist. Proof Idea Suppose ∃ O obfuscator. Take ∀α, β ∈ {0,1}k. Cα, β(x) = return β if x = α, or 0k otherwise. Dα, β(C) = return 1 if C(α) = β, or 0 otherwise. Consider an adversary A doing A(C, D) = return D(C). Then Pr[ A(O(Cα, β), O(Dα, β)) = 1 ] = 1. So, especially when α ← {0,1}k, β≠0k, 1 ≒ Pr[ SCα, β, Dα, β = 1 ] ≒ Pr[ SZk, Dα, β = 1 ] Zk a TM that always output 0k ≒ Pr[ A(O(Zk), O(Dα, β)) = 1 ] ≒ 0. Contradiction! Construction in the random oracle model Fx denotes a point function that outputs 1 for x. Fx, y denotes a point function that outputs y for x. Let R be a random oracle. O(Fx) z = R(x) return "on input y, return 1 if R(y) = z, or 0 otherwise". O(Fx, y) r ← {0,1}n z1 = R1(x,r) z2 = R2(x,r) + y return "on input a, return z2 + R2(a, r) if R1(a, r) = z1." Def (Computational approximate functionality) F a family of functions a PPT O is an obfuscator of F with computational approximate functionality if (Polynomial Slowdown), (Vritual Black-box property) and ∀F ∈ F, ∀A a nonuniform PPT, Pr[ x ← A(O(F)) O(F)(x) ≠ F(x) ] ≦ ε(n). Def (Statistical Perfect One-Way Function) A probabilistic function family H = {Hk}k is a statistically perfect one-way (POW) function if 【Efficient Verification】 ∃VH PT, ∀k ∈ Kn, ∀x ∈ {0,1}n, ∀r ∈ {0,1}n, VH(x, Hk(x, r)) = 1. (それら以外では0) 【Collision Resistance】 ∀A nonuniform PPT, Pr[ k ← Kn, (x1, x2, y) ← A(k) x1 ≠ x1, VH(x1, y) = VH(x2, y) = 1 ] ≦ ε(n). 【Statistical 2-indistinguishability】 ∀X = {Xn} well-spread, ∀k ∈ Kn, Δ( (Hk(Xn, Rn1), Hk(Xn, Rn2)), (Hk(Un1, Rn1), Hk(Un2, Rn2)) ) ≦ ε(n). Theorem (Obfuscator with computational approximate functionality) Obfuscators with computational approximate functionality exist for point functions. Construction Let H be a POW function. O(Fx) z = H(x) return "on input y, return 1 if VH(y, z) = 1, or 0 otherwise". O(Fx, y) // t = |y| r1, ... , rt+1 ← {0,1}n u1 = O(Fx; r1) i ∈ [1..t] zi+1 = x if yi = 1, or uniform if yi = 0 ui+1 = O(Fzi+1; ri+1) return "on input a, u1(a) =? 0 return 0 else i ∈ [2..(t+1)] yi-1 = ui(a) return y = y1...yt." 上へ
https://w.atwiki.jp/vtsr/pages/1942.html
【鏡音リン】Escape【オリジナル】 http //www.nicovideo.jp/watch/sm1970469 http //www.nicovideo.jp/watch/sm1970469 2008年01月07日 04 44 10 投稿 Vocaloid2のオリジナル曲 使用Vocaloidは鏡音リン 製作者はmamma氏 一つ前のページにもどる
https://w.atwiki.jp/satoschi/pages/2858.html
テマスカルテペック・ナーワートル語 |Uto-Aztecan languages| 言語類型 現用言語 使用文字 type living language writing system ISO 639-3 【nhv】 言語名別称 alternate names Almomoloya Náhuatl Temascaltepec Aztec テマスカルテペック・ナウワトル語 ◆アタリ, ジャック. 1492 西欧文明の世界支配. 斎藤広信訳. 筑摩書房 ちくま学芸文庫, 2009, 467p. テマスカルテペック・ナホワトル語 テマスカルテペック・ナワトル語 テマスカルテペック・ナワル語 方言名 dialect names 参考文献 references WEB ISO 639-3 Registration Authority - SIL International the LINGUIST List Ethnologue
https://w.atwiki.jp/tmiya/pages/97.html
第 2 章 識別子・名前・スコープ (Identifiers, Names and Scopes) Names in Scala identify types, values, methods, and classes which are collectively called entities. Names are introduced by local definitions and declarations (§4), inheritance (§5.1.3), import clauses (§4.7), or package clauses (§9.2) which are collectively called bindings. Scala における名前は、ひとまとめに エンティティ と呼ばれる、 型、値、メソッド、そしてクラスを識別します。 名前はローカルな定義と宣言 (§4)、 継承(§5.1.3)、 インポート節(§4.7)、 あるいはパッケージ節(§9.2) によって導入され、それらはひとまとめに、 束縛(bindings) と呼ばれます。 Bindings of different kinds have a precedence defined on them Definitions and declarations that are local, inherited, or made available by a package clause in the same compilation unit where the definition occurs have highest precedence. Explicit imports have next highest precedence. Wildcard imports have next highest precedence. Definitions made available by a package clause not in the compilation unit where the definition occurs have lowest precedence. 異なる種類の束縛は、それぞれ優先順位を持っています 定義と宣言は、ローカルなもの、継承されたもの、あるいは定義が現れる同じコンパイル単位中のパッケージ節を通して利用可能となったものが、最も高い優先順位を持っています。 明示的なインポートが次に最も高い優先順位を持っています。 ワイルドカードによるインポートが次に最も高い優先順位を持っています。 定義が現れるコンパイル単位中にないパッケージ節を通して利用可能となった定義が、最も低い優先順位を持っています。 There are two different name spaces, one for types (§3) and one for terms (§6). The same name may designate a type and a term, depending on the context where the name is used. 2 つの異なる名前空間があり、一つは型(types §3)のためのもの、もう一つは項 (terms §6)のためのものです。 その名前が使われるコンテキストによっては、 同じ名前で 1 つの型と 1 つの項を指定できます。 A binding has a scope in which the entity defined by a single name can be accessed using a simple name. Scopes are nested. A binding in some inner scope shadows bindings of lower precedence in the same scope as well as bindings of the same or lower precedence in outer scopes. Note that shadowing is only a partial order. In a situation like 束縛は スコープ を持ち、そこでは、 ただ 1 つの名前によって定義されたエンティティは、 単純名を使ってアクセスできます。 スコープはネストされます。 内側のスコープ中の束縛は、 同じスコープ中のより低い優先順位の束縛を 隠します(shadow) 。 また、外側のスコープ中の、同じかあるいはより低い優先順位の束縛も隠します。 隠すことは、半順序関係にすぎないことに注意してください。 次の状況では val x = 1; { import p.x; x } x のいずれの束縛も、他を隠しません。 したがって、上記 3 行目の x への参照は曖昧です。 A reference to an unqualified (type- or term-) identifier x is bound by the unique binding, which defines an entity with name x in the same namespace as the identifier, and shadows all other bindings that define entities with name x in that namespace . 限定修飾されていない (型あるいは項の) 識別子 x への参照は、 ただ 1 つの束縛に結びつけられます。それは、 識別子と同じ名前空間中で名前 x のエンティティを定義し、 その名前空間中で名前 x のエンティティを定義する、他のすべての束縛を隠します。 It is an error if no such binding exists. If x is bound by an import clause, then the simple name x is taken to be equivalent to the qualified name to which x is mapped by the import clause. If x is bound by a definition or declaration, then x refers to the entity introduced by that binding. In that case, the type of x is the type of the referenced entity. もしそのような束縛が存在しないなら、エラーです。 もし x がインポート節によって束縛されるなら、単純名 x は、 インポート節によって x がマップされる、限定修飾された名前に等しいと解釈されます。 もし x が定義あるいは宣言によって束縛されるなら、 x はその束縛によって導入されたエンティティを参照します。 この場合、x の型は参照されるエンティティの型です。 Example 2.0.2 パッケージ P と Q 中に X という名前の 2 つのオブジェクト定義があるとします。 package P { object X { val x = 1; val y = 2 } } package Q { object X { val x = true; val y = "" } } 次のプログラムは、それらの間の異なる種類の束縛と優先順位を示します。 package P { // X パッケージ節による束縛 import Console._ // println ワイルドカード節による束縛 object A { println("L4 "+X) // ここでは、 X は P.X を参照 object B { import Q._ // X ワイルドカード節による束縛 println("L7 "+X) // ここでは X は Q.X を参照 import X._ // x と y ワイルドカード節による束縛 println("L8 "+x) // ここでは x は Q.X.x を参照 object C { val x = 3 // x ローカル定義よって束縛 println("L12 "+x) // ここでは、 x は定数 3 を参照 { import Q.X._ // x と y は、ワイルドカード節による束縛 // println("L14 "+x) // ここでは x への参照は曖昧 import X.y // y 明示的インポートによる束縛 println("L16 "+y) // ここでは y は Q.X.y を参照 { val x = "abc" // x ローカル定義よって束縛 import P.X._ // x と y ワイルドカード節による束縛 // println("L19 "+y) // ここでは y への参照は曖昧 println("L20 "+x) // ここでは x は文字列 abc あ を参照 }}}}}} A reference to a qualified (type- or term-) identifier e.x refers to the member of the type T of e which has the name x in the same namespace as the identifier. It is an error if T is not a value type (§3.2). The type of e.x is the member type of the referenced entity in T . 限定修飾された(型あるいは項の)識別子 e.x への参照は、 識別子と同じ名前空間中の名前 x を持つ、e の型 T のメンバーを参照します。 もし T が値型(§3.2)でないなら、エラーです。 e.x の型は、T 中の参照されたエンティティのメンバー型です。 前 1章 目次 次 3章
https://w.atwiki.jp/hmiku/pages/17769.html
【検索用 ScarletRose 登録タグ 2011年 Lily NexTone管理曲 S VOCALOID seleP 優木きら 曲 曲英 殿堂入り】 + 目次 目次 曲紹介 歌詞 コメント 作詞:seleP 作曲:seleP 編曲:seleP イラスト:優木きら 唄:Lily 曲紹介 曲名:『Scarlet Rose』 selePのヤンデレに定評のあるLily。 Lily発売と自身の楽曲「Chloe」の一周年記念。 歌詞 動き始めた感情(はぐるま)は軋み続けていた だけど私は信じてた あなたが愛し続けていると 逃げ続ける事が私には理解出来なくて 離さないで私の手をいつまでも抱きしめて 俯きがちな心を晒しても 何も感じられず苦しい 一途な愛はあなただけを見つめて 他には何も見えなくなっていく 涙は赤き雫から何を感じるの? 触れたくて抱きしめられたくて 今は何も見えなくて 動き始めた感情(はぐるま)は軋み続けていた だけど私は信じてた あなたが愛し続けていると 逃げ続ける事が私には理解出来なくて 離さないで私の手をいつまでも抱きしめて 抜け出せない思い出は私を苦しめ続け 交差する感情は螺旋の中に囚われる 這い蹲ってでもあなたに近づきたくて 今も幻想を抱いて果て無き夢を見続けていた 暗闇の中でもあなたを感じて 裸のままで抱き寄せてよ 他の女なんて殺してあげる この世であなたを愛せるのは一人 私以外にはいないよ 狂おしいほどに乱れ咲く薔薇の棘が刺さる 痛みさえも愛しくて 動き始めた感情(はぐるま)は軋み続けていた だけど私は信じてた あなたが愛し続けていると 逃げ続ける事が私には理解出来なくて 離さないで私の手をいつまでも抱きしめて 抜け出せない思い出は私を苦しめ続け 交差する感情は螺旋の中に囚われる 這い蹲ってでもあなたに近づきたくて 今も幻想を抱いて果て無き夢を見続けていた 突き刺した刃は深く全てを飲み込んでゆく 飛び散る鮮血が私を赤く染め続けてる 刹那に誓ったただ狂おしい愛情だけは 今も一途な思い ただ純粋で無垢なだけ 何もかも殺しても何も周りが見えなくて 意識を破壊された少女は何を願うのか ただ笑いながらその刃を自分に突き刺して 全ての憎しみが静かに潰えた瞬間に…… 冷たい体を抱き寄せる誰かの温もりが 真っ赤に染まった裸の私を誘ってく もう二度と動かない笑うことも出来ないまま 光を失った闇の中で踠き続ける 遺志を継いだ女が再び狂気をふりかざし 繋がる人々を美しく赤く染め上げる 繰り返される定めただ一人の姉の思いを 叶えてあげる為私は全てを曝け出す コメント おおおお!!! -- 名無しさん (2011-08-16 22 22 27) スゲー(≧∇≦) -- 名無しさん (2011-08-19 07 46 20) この曲大好き -- 名無しさん (2011-08-20 18 48 07) この曲でLilyが好きになった -- 名無しさん (2011-08-20 18 49 41) ヤンデレ可愛い -- 名無しさん (2011-08-21 16 57 50) Lilyの低音かっこいい -- 名無しさん (2011-08-22 14 30 07) ぐ・・グロい・・・かけぇぇぇぇぇっぇ! -- 初音馬鹿 (2011-08-25 11 31 05) かっいいなぁ(っ*^ω^c) -- 名無しさん (2011-09-18 00 18 01) seleP様サイコーだぁ(*´U`*) -- 名無しさん (2011-09-18 00 19 24) カッコイイ(^^)!Lilyの曲で1番すきです! -- 鏡音廃 (2011-11-11 19 12 14) かっこいいです!!selePさーん!!! -- 名無しさん (2011-12-02 13 56 08) 一瞬にして惚れた… 好きだ! -- 名無しさん (2011-12-31 09 26 18) 大好きすぎる あたしそのものだわ‥ -- Lily (2012-04-02 01 28 47) この音楽俺大好きだ、ウォークマンに入れたら、スケボー上手くなりそう -- biutyurixku (2012-09-02 00 48 30) seleP&ヤンデLilyはサイコ! -- 名無しさん (2013-02-23 20 34 43) 私が好きなボカロPはseleP様とniki様です!この2人の曲は聞いた瞬間i-podに飛んでいきます -- 波音りっちゃん (2013-02-28 21 14 19) ヤベー!神だ~!こういう曲ちょー好きだー! -- 真紅 (2013-07-23 11 08 15) この曲めっちゃ好きー! -- ゆう (2014-02-13 19 24 02) ロングverも掲載はして欲しいかな……ダメなのかな -- 名無しS (2014-03-17 04 43 30) 疾走感が堪らない!!! -- 名無しのP (2014-08-31 11 11 17) テンポ速えええ!格好良えええ! -- 月影 (2015-06-23 22 40 30) 殿堂入りおめでとう -- 名無しさん (2016-08-26 22 45 54) 名前 コメント
https://w.atwiki.jp/kenichiprime/pages/30.html
アメリカ製7.62mm新型突撃銃。 SCAR-H 今のところ、カテゴリー中唯一3発キルが出来る重アサルトライフル。 前作で言うG3的な立ち位置。 3発キルの魅力は大きいが、反動が大きく装弾数が少なめ。 遠距離は指切り射撃か、単発に切り替えて運用すべし。 アイアンサイトは少々見づらいため、アタッチメントにRDSやCOYOTE(RDS)の装着を推奨。 またACOG(4X)などの高倍率サイトを装着・セミオートで使用すれば、中距離以降も充分対応可能。 但し弾速は遅いので遠方を素早く動く敵の捕捉にはコツを要する。 注目するべき点はDPM KTT の圧倒的な高さである 弾速は遅いからサプレッサーは極力避けたい ダメージ 34.0 - 25.0 8m → 55m 620 カスタムはここから選ぼう 1 標準バレル 2 ヘビーバレル(HS向け) 3 アングルフォアグリップ Akagamiカスタム RDS 標準バレル アングルフォア レーザーサイト